'special length/indicator values
Public Const SQL_NULL_DATA = (-1)
Public Const SQL_DATA_AT_EXEC = (-2)
'return values from functions
Public Const SQL_SUCCESS = 0
Public Const SQL_SUCCESS_WITH_INFO = 1
Public Const SQL_NO_DATA = 100
Public Const SQL_ERROR = (-1)
Public Const SQL_INVALID_HANDLE = (-2)

Public Const SQL_STILL_EXECUTING = 2
Public Const SQL_NEED_DATA = 99

'test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO
Public Const SQL_SUCCEEDED(rc) (((rc)&(~1)) = 0)

'flags for null-terminated string
Public Const SQL_NTS = (-3)
Public Const SQL_NTSL = (-3L)

'maximum message length
Public Const SQL_MAX_MESSAGE_LENGTH = 512

'date/time length constants
Public Const SQL_DATE_LEN = 10
Public Const SQL_TIME_LEN = 8 = 'add P+1 if precision is nonzero
Public Const SQL_TIMESTAMP_LEN = 19 = 'add P+1 if precision is nonzero

'handle type identifiers
Public Const SQL_HANDLE_ENV = 1
Public Const SQL_HANDLE_DBC = 2
Public Const SQL_HANDLE_STMT = 3
Public Const SQL_HANDLE_DESC = 4

'environment attribute
Public Const SQL_ATTR_OUTPUT_NTS = 10001

'connection attributes
Public Const SQL_ATTR_AUTO_IPD = 10001
Public Const SQL_ATTR_METADATA_ID = 10014

'statement attributes
Public Const SQL_ATTR_APP_ROW_DESC = 10010
Public Const SQL_ATTR_APP_PARAM_DESC = 10011
Public Const SQL_ATTR_IMP_ROW_DESC = 10012
Public Const SQL_ATTR_IMP_PARAM_DESC = 10013
Public Const SQL_ATTR_CURSOR_SCROLLABLE = (-1)
Public Const SQL_ATTR_CURSOR_SENSITIVITY =(-2)

'SQL_ATTR_CURSOR_SCROLLABLE values
Public Const SQL_NONSCROLLABLE = 0
Public Const SQL_SCROLLABLE = 1

'identifiers of fields in the SQL descriptor
Public Const SQL_DESC_COUNT = 1001
Public Const SQL_DESC_TYPE = 1002
Public Const SQL_DESC_LENGTH = 1003
Public Const SQL_DESC_OCTET_LENGTH_PTR = 1004
Public Const SQL_DESC_PRECISION = 1005
Public Const SQL_DESC_SCALE = 1006
Public Const SQL_DESC_DATETIME_INTERVAL_CODE = 1007
Public Const SQL_DESC_NULLABLE = 1008
Public Const SQL_DESC_INDICATOR_PTR = 1009
Public Const SQL_DESC_DATA_PTR = 1010
Public Const SQL_DESC_NAME = 1011
Public Const SQL_DESC_UNNAMED = 1012
Public Const SQL_DESC_OCTET_LENGTH = 1013
Public Const SQL_DESC_ALLOC_TYPE = 1099

'identifiers of fields in the diagnostics area
Public Const SQL_DIAG_RETURNCODE = 1
Public Const SQL_DIAG_NUMBER = 2
Public Const SQL_DIAG_ROW_COUNT = 3
Public Const SQL_DIAG_SQLSTATE = 4
Public Const SQL_DIAG_NATIVE = 5
Public Const SQL_DIAG_MESSAGE_TEXT = 6
Public Const SQL_DIAG_DYNAMIC_FUNCTION = 7
Public Const SQL_DIAG_CLASS_ORIGIN = 8
Public Const SQL_DIAG_SUBCLASS_ORIGIN = 9
Public Const SQL_DIAG_CONNECTION_NAME = 10
Public Const SQL_DIAG_SERVER_NAME = 11
Public Const SQL_DIAG_DYNAMIC_FUNCTION_CODE = 12
'
'dynamic function codes

Public Const SQL_DIAG_ALTER_TABLE = 4
Public Const SQL_DIAG_CREATE_INDEX = (-1)
Public Const SQL_DIAG_CREATE_TABLE = 77
Public Const SQL_DIAG_CREATE_VIEW = 84
Public Const SQL_DIAG_DELETE_WHERE = 19
Public Const SQL_DIAG_DROP_INDEX = (-2)
Public Const SQL_DIAG_DROP_TABLE = 32
Public Const SQL_DIAG_DROP_VIEW = 36
Public Const SQL_DIAG_DYNAMIC_DELETE_CURSOR = 38
Public Const SQL_DIAG_DYNAMIC_UPDATE_CURSOR = 81
Public Const SQL_DIAG_GRANT = 48
Public Const SQL_DIAG_INSERT = 50
Public Const SQL_DIAG_REVOKE = 59
Public Const SQL_DIAG_SELECT_CURSOR = 85
Public Const SQL_DIAG_UNKNOWN_STATEMENT = 0
Public Const SQL_DIAG_UPDATE_WHERE = 82
'SQL data type codes
Public Const SQL_UNKNOWN_TYPE = 0
Public Const SQL_CHAR = 1
Public Const SQL_NUMERIC = 2
Public Const SQL_DECIMAL = 3
Public Const SQL_INTEGER = 4
Public Const SQL_SMALLINT = 5
Public Const SQL_FLOAT = 6
Public Const SQL_REAL = 7
Public Const SQL_DOUBLE = 8
Public Const SQL_DATETIME = 9
Public Const SQL_VARCHAR = 12

'One-parameter shortcuts for date/time data types
Public Const SQL_TYPE_DATE = 91
Public Const SQL_TYPE_TIME = 92
Public Const SQL_TYPE_TIMESTAMP = 93

'Statement attribute values for cursor sensitivity
Public Const SQL_UNSPECIFIED = 0
Public Const SQL_INSENSITIVE = 1
Public Const SQL_SENSITIVE = 2

'GetTypeInfo() request for all data types
Public Const SQL_ALL_TYPES = 0

'Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData()
Public Const SQL_DEFAULT = 99

'SQLGetData() code indicating that the application row descriptor
 * specifies the data type

Public Const SQL_ARD_TYPE = (-99)

'SQL date/time type subcodes
Public Const SQL_CODE_DATE = 1
Public Const SQL_CODE_TIME = 2
Public Const SQL_CODE_TIMESTAMP = 3

'CLI option values
Public Const SQL_FALSE = 0
Public Const SQL_TRUE = 1

'values of NULLABLE field in descriptor
Public Const SQL_NO_NULLS = 0
Public Const SQL_NULLABLE = 1

'Value returned by SQLGetTypeInfo() to denote that it is
 * not known whether or not a data type supports null values.

Public Const SQL_NULLABLE_UNKNOWN = 2

'Values returned by SQLGetTypeInfo() to show WHERE clause
 * supported

Public Const SQL_PRED_NONE = 0
Public Const SQL_PRED_CHAR = 1
Public Const SQL_PRED_BASIC 2

'values of UNNAMED field in descriptor
Public Const SQL_NAMED = 0
Public Const SQL_UNNAMED = 1
'
'values of ALLOC_TYPE field in descriptor
Public Const SQL_DESC_ALLOC_AUTO = 1
Public Const SQL_DESC_ALLOC_USER = 2
'
'FreeStmt() options
Public Const SQL_CLOSE = 0
Public Const SQL_DROP = 1
Public Const SQL_UNBIND = 2
Public Const SQL_RESET_PARAMS = 3

'Codes used for FetchOrientation in SQLFetchScroll(), 
'and in SQLDataSources() 
 
Public Const SQL_FETCH_NEXT = 1
Public Const SQL_FETCH_FIRST = 2

'Other codes used for FetchOrientation in SQLFetchScroll()
Public Const SQL_FETCH_LAST = 3
Public Const SQL_FETCH_PRIOR = 4
Public Const SQL_FETCH_ABSOLUTE = 5
Public Const SQL_FETCH_RELATIVE = 6

'SQLEndTran() options
Public Const SQL_COMMIT = 0
Public Const SQL_ROLLBACK = 1

'null handles returned by SQLAllocHandle()
Public Const SQL_NULL_HENV = 0
Public Const SQL_NULL_HDBC = 0
Public Const SQL_NULL_HSTMT = 0
Public Const SQL_NULL_HDESC = 0
'
'null handle used in place of parent handle when allocating HENV
Public Const SQL_NULL_HANDLE = 0L
'
'Values that may appear in the result set of SQLSpecialColumns()
Public Const SQL_SCOPE_CURROW = 0
Public Const SQL_SCOPE_TRANSACTION = 1
Public Const SQL_SCOPE_SESSION = 2

Public Const SQL_PC_UNKNOWN = 0
Public Const SQL_PC_NON_PSEUDO = 1
Public Const SQL_PC_PSEUDO = 2

'Reserved value for the IdentifierType argument of SQLSpecialColumns()
Public Const SQL_ROW_IDENTIFIER = 1
'
'Reserved values for UNIQUE argument of SQLStatistics()
Public Const SQL_INDEX_UNIQUE = 0
Public Const SQL_INDEX_ALL = 1

'Values that may appear in the result set of SQLStatistics()
Public Const SQL_INDEX_CLUSTERED = 1
Public Const SQL_INDEX_HASHED = 2
Public Const SQL_INDEX_OTHER = 3

'SQLGetFunctions() values to identify ODBC APIs
Public Const SQL_API_SQLALLOCCONNECT = 1
Public Const SQL_API_SQLALLOCENV = 2
Public Const SQL_API_SQLALLOCHANDLE = 1001
Public Const SQL_API_SQLALLOCSTMT = 3
Public Const SQL_API_SQLBINDCOL = 4
Public Const SQL_API_SQLBINDPARAM = 1002
Public Const SQL_API_SQLCANCEL = 5
Public Const SQL_API_SQLCLOSECURSOR = 1003
Public Const SQL_API_SQLCOLATTRIBUTE = 6
Public Const SQL_API_SQLCOLUMNS = 40
Public Const SQL_API_SQLCONNECT = 7
Public Const SQL_API_SQLCOPYDESC = 1004
Public Const SQL_API_SQLDATASOURCES = 57
Public Const SQL_API_SQLDESCRIBECOL = 8
Public Const SQL_API_SQLDISCONNECT = 9

Public Const SQL_API_SQLENDTRAN = 1005
Public Const SQL_API_SQLERROR = 10
Public Const SQL_API_SQLEXECDIRECT = 11
Public Const SQL_API_SQLEXECUTE = 12
Public Const SQL_API_SQLFETCH = 13

Public Const SQL_API_SQLFETCHSCROLL = 1021
Public Const SQL_API_SQLFREECONNECT = 14
Public Const SQL_API_SQLFREEENV = 15

Public Const SQL_API_SQLFREEHANDLE = 1006
Public Const SQL_API_SQLFREESTMT = 16

Public Const SQL_API_SQLGETCONNECTATTR =1007
Public Const SQL_API_SQLGETCONNECTOPTION =42
Public Const SQL_API_SQLGETCURSORNAME = 17
Public Const SQL_API_SQLGETDATA = 43

Public Const SQL_API_SQLGETDESCFIELD = 1008
Public Const SQL_API_SQLGETDESCREC = 1009
Public Const SQL_API_SQLGETDIAGFIELD = 1010
Public Const SQL_API_SQLGETDIAGREC = 1011
Public Const SQL_API_SQLGETENVATTR = 1012
Public Const SQL_API_SQLGETFUNCTIONS = 44
Public Const SQL_API_SQLGETINFO = 45

Public Const SQL_API_SQLGETSTMTATTR = 1014
Public Const SQL_API_SQLGETSTMTOPTION = 46
Public Const SQL_API_SQLGETTYPEINFO = 47
Public Const SQL_API_SQLNUMRESULTCOLS = 18
Public Const SQL_API_SQLPARAMDATA = 48
Public Const SQL_API_SQLPREPARE = 19
Public Const SQL_API_SQLPUTDATA = 49
Public Const SQL_API_SQLROWCOUNT = 20

Public Const SQL_API_SQLSETCONNECTATTR = 1016
Public Const SQL_API_SQLSETCONNECTOPTION = 50
Public Const SQL_API_SQLSETCURSORNAME = 21

Public Const SQL_API_SQLSETDESCFIELD = 1017
Public Const SQL_API_SQLSETDESCREC = 1018
Public Const SQL_API_SQLSETENVATTR = 1019
Public Const SQL_API_SQLSETPARAM = 22

Public Const SQL_API_SQLSETSTMTATTR = 1020
Public Const SQL_API_SQLSETSTMTOPTION = 51
Public Const SQL_API_SQLSPECIALCOLUMNS = 52
Public Const SQL_API_SQLSTATISTICS = 53
Public Const SQL_API_SQLTABLES = 54
Public Const SQL_API_SQLTRANSACT = 23

'Information requested by SQLGetInfo()

Public Const SQL_MAX_DRIVER_CONNECTIONS = 0
Public Const SQL_MAXIMUM_DRIVER_CONNECTIONS = SQL_MAX_DRIVER_CONNECTIONS
Public Const SQL_MAX_CONCURRENT_ACTIVITIES = 1
Public Const SQL_MAXIMUM_CONCURRENT_ACTIVITIES = SQL_MAX_CONCURRENT_ACTIVITIES
Public Const SQL_DATA_SOURCE_NAME = 2
Public Const SQL_FETCH_DIRECTION = 8
Public Const SQL_SERVER_NAME = 13
Public Const SQL_SEARCH_PATTERN_ESCAPE = 14
Public Const SQL_DBMS_NAME = 17
Public Const SQL_DBMS_VER = 18
Public Const SQL_ACCESSIBLE_TABLES = 19
Public Const SQL_ACCESSIBLE_PROCEDURES = 20
Public Const SQL_CURSOR_COMMIT_BEHAVIOR = 23
Public Const SQL_DATA_SOURCE_READ_ONLY = 25
Public Const SQL_DEFAULT_TXN_ISOLATION = 26
Public Const SQL_IDENTIFIER_CASE = 28
Public Const SQL_IDENTIFIER_QUOTE_CHAR = 29
Public Const SQL_MAX_COLUMN_NAME_LEN = 30
Public Const SQL_MAXIMUM_COLUMN_NAME_LENGTH = SQL_MAX_COLUMN_NAME_LEN
Public Const SQL_MAX_CURSOR_NAME_LEN = 31
Public Const SQL_MAXIMUM_CURSOR_NAME_LENGTH = SQL_MAX_CURSOR_NAME_LEN
Public Const SQL_MAX_SCHEMA_NAME_LEN = 32
Public Const SQL_MAXIMUM_SCHEMA_NAME_LENGTH = SQL_MAX_SCHEMA_NAME_LEN
Public Const SQL_MAX_CATALOG_NAME_LEN = 34
Public Const SQL_MAXIMUM_CATALOG_NAME_LENGTH = SQL_MAX_CATALOG_NAME_LEN
Public Const SQL_MAX_TABLE_NAME_LEN = 35
Public Const SQL_SCROLL_CONCURRENCY = 43
Public Const SQL_TXN_CAPABLE = 46
Public Const SQL_TRANSACTION_CAPABLE = SQL_TXN_CAPABLE
Public Const SQL_USER_NAME = 47
Public Const SQL_TXN_ISOLATION_OPTION = 72
Public Const SQL_TRANSACTION_ISOLATION_OPTION = SQL_TXN_ISOLATION_OPTION
Public Const SQL_INTEGRITY = 73
Public Const SQL_GETDATA_EXTENSIONS = 81
Public Const SQL_NULL_COLLATION = 85
Public Const SQL_ALTER_TABLE = 86
Public Const SQL_ORDER_BY_COLUMNS_IN_SELECT = 90
Public Const SQL_SPECIAL_CHARACTERS = 94
Public Const SQL_MAX_COLUMNS_IN_GROUP_BY = 97
Public Const SQL_MAXIMUM_COLUMNS_IN_GROUP_BY = SQL_MAX_COLUMNS_IN_GROUP_BY
Public Const SQL_MAX_COLUMNS_IN_INDEX = 98
Public Const SQL_MAXIMUM_COLUMNS_IN_INDEX = SQL_MAX_COLUMNS_IN_INDEX
Public Const SQL_MAX_COLUMNS_IN_ORDER_BY = 99
Public Const SQL_MAXIMUM_COLUMNS_IN_ORDER_BY = SQL_MAX_COLUMNS_IN_ORDER_BY
Public Const SQL_MAX_COLUMNS_IN_SELECT = 100
Public Const SQL_MAXIMUM_COLUMNS_IN_SELECT = SQL_MAX_COLUMNS_IN_SELECT
Public Const SQL_MAX_COLUMNS_IN_TABLE = 101
Public Const SQL_MAX_INDEX_SIZE = 102
Public Const SQL_MAXIMUM_INDEX_SIZE = SQL_MAX_INDEX_SIZE
Public Const SQL_MAX_ROW_SIZE = 104
Public Const SQL_MAXIMUM_ROW_SIZE = SQL_MAX_ROW_SIZE
Public Const SQL_MAX_STATEMENT_LEN = 105
Public Const SQL_MAXIMUM_STATEMENT_LENGTH  = SQL_MAX_STATEMENT_LEN
Public Const SQL_MAX_TABLES_IN_SELECT = 106
Public Const SQL_MAXIMUM_TABLES_IN_SELECT = SQL_MAX_TABLES_IN_SELECT
Public Const SQL_MAX_USER_NAME_LEN = 107
Public Const SQL_MAXIMUM_USER_NAME_LENGTH = SQL_MAX_USER_NAME_LEN

Public Const SQL_OJ_CAPABILITIES = 115
Public Const SQL_OUTER_JOIN_CAPABILITIES = SQL_OJ_CAPABILITIES

Public Const SQL_XOPEN_CLI_YEAR = 10000
Public Const SQL_CURSOR_SENSITIVITY = 10001
Public Const SQL_DESCRIBE_PARAMETER = 10002
Public Const SQL_CATALOG_NAME = 10003
Public Const SQL_COLLATION_SEQ = 10004
Public Const SQL_MAX_IDENTIFIER_LEN = 10005
Public Const SQL_MAXIMUM_IDENTIFIER_LENGTH = SQL_MAX_IDENTIFIER_LEN

'SQL_ALTER_TABLE bitmasks
Public Const SQL_AT_ADD_COLUMN = 0x00000001L
Public Const SQL_AT_DROP_COLUMN = 0x00000002L

Public Const SQL_AT_ADD_CONSTRAINT = 0x00000008L

'The following bitmasks are ODBC extensions and defined in sqlext.h
Public Const SQL_AT_COLUMN_SINGLE = 0x00000020L 
Public Const SQL_AT_ADD_COLUMN_DEFAULT = 0x00000040L
Public Const SQL_AT_ADD_COLUMN_COLLATION = 0x00000080L
Public Const SQL_AT_SET_COLUMN_DEFAULT = 0x00000100L
Public Const SQL_AT_DROP_COLUMN_DEFAULT = 0x00000200L
Public Const SQL_AT_DROP_COLUMN_CASCADE = 0x00000400L
Public Const SQL_AT_DROP_COLUMN_RESTRICT = 0x00000800L
Public Const SQL_AT_ADD_TABLE_CONSTRAINT = 0x00001000L  
Public Const SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE = 0x00002000L  
Public Const SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = 0x00004000L  
Public Const SQL_AT_CONSTRAINT_NAME_DEFINITION = 0x00008000L
Public Const SQL_AT_CONSTRAINT_INITIALLY_DEFERRED = 0x00010000L
Public Const SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00020000L
Public Const SQL_AT_CONSTRAINT_DEFERRABLE = 0x00040000L
Public Const SQL_AT_CONSTRAINT_NON_DEFERRABLE = 0x00080000L
 
' SQL_ASYNC_MODE values 

Public Const SQL_AM_NONE = 0
Public Const SQL_AM_CONNECTION = 1
Public Const SQL_AM_STATEMENT = 2
'
'  SQL_CURSOR_COMMIT_BEHAVIOR values  
Public Const SQL_CB_DELETE = 0
Public Const SQL_CB_CLOSE = 1
Public Const SQL_CB_PRESERVE = 2

'  SQL_FETCH_DIRECTION bitmasks  
Public Const SQL_FD_FETCH_NEXT = 0x00000001L
Public Const SQL_FD_FETCH_FIRST = 0x00000002L
Public Const SQL_FD_FETCH_LAST = 0x00000004L
Public Const SQL_FD_FETCH_PRIOR = 0x00000008L
Public Const SQL_FD_FETCH_ABSOLUTE = 0x00000010L
Public Const SQL_FD_FETCH_RELATIVE = 0x00000020L

'SQL_GETDATA_EXTENSIONS bitmasks
Public Const SQL_GD_ANY_COLUMN = 0x00000001L
Public Const SQL_GD_ANY_ORDER = 0x00000002L

'SQL_IDENTIFIER_CASE values
Public Const SQL_IC_UPPER = 1
Public Const SQL_IC_LOWER = 2
Public Const SQL_IC_SENSITIVE = 3
Public Const SQL_IC_MIXED = 4

'SQL_OJ_CAPABILITIES bitmasks
'NB: this means 'outer join', not what = you may be thinking

Public Const SQL_OJ_LEFT = 0x00000001L
Public Const SQL_OJ_RIGHT = 0x00000002L
Public Const SQL_OJ_FULL = 0x00000004L
Public Const SQL_OJ_NESTED = 0x00000008L
Public Const SQL_OJ_NOT_ORDERED = 0x00000010L
Public Const SQL_OJ_INNER = 0x00000020L
Public Const SQL_OJ_ALL_COMPARISON_OPS = 0x00000040L
'
'SQL_SCROLL_CONCURRENCY bitmasks
Public Const SQL_SCCO_READ_ONLY = 0x00000001L
Public Const SQL_SCCO_LOCK = 0x00000002L
Public Const SQL_SCCO_OPT_ROWVER = 0x00000004L
Public Const SQL_SCCO_OPT_VALUES = 0x00000008L

'SQL_TXN_CAPABLE values
Public Const SQL_TC_NONE = 0
Public Const SQL_TC_DML = 1
Public Const SQL_TC_ALL = 2
Public Const SQL_TC_DDL_COMMIT = 3
Public Const SQL_TC_DDL_IGNORE = 4

'SQL_TXN_ISOLATION_OPTION bitmasks
Public Const SQL_TXN_READ_UNCOMMITTED = 0x00000001L
Public Const SQL_TRANSACTION_READ_UNCOMMITTED = SQL_TXN_READ_UNCOMMITTED
Public Const SQL_TXN_READ_COMMITTED = 0x00000002L
Public Const SQL_TRANSACTION_READ_COMMITTED = SQL_TXN_READ_COMMITTED
Public Const SQL_TXN_REPEATABLE_READ = 0x00000004L
Public Const SQL_TRANSACTION_REPEATABLE_READ = SQL_TXN_REPEATABLE_READ
Public Const SQL_TXN_SERIALIZABLE = 0x00000008L
Public Const SQL_TRANSACTION_SERIALIZABLE = SQL_TXN_SERIALIZABLE

'SQL_NULL_COLLATION values
Public Const SQL_NC_HIGH = 0
Public Const SQL_NC_LOW = 1


